# -*- coding: utf-8 -*-
# @Author  : wml
# @Time    : 2024/12/6 14:58
# @File    : qianwen.py
# @Software: PyCharm

import json
import os
from openai import OpenAI

'''
调用通义千问的接口，生成内容多，结果稍好一点，不过时间比较长
有时候返回的结果没有按照给定的格式来会报错
'''

def call_tyqw_api(messages):
    client = OpenAI(
        # 若没有配置环境变量，请用百炼API Key将下行替换为：api_key="sk-xxx",
        api_key="sk-04fc9224fa0c4f469e425a735a697e64",
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )
    completion = client.chat.completions.create(
        model="qwen-plus",  # 模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
        messages=messages,
    )
    return completion

def generate_outline(name, background, style, tone):
    prompt = f"根据主角姓名“{name}”、游戏背景“{background}”和故事风格“{style}”,用{tone}的叙述风格生成一个简短游戏副本梗概（在这个游戏中，你会为主角安排一个合适的身份，并且为主角安排一个特定任务，主角将想办法完成任务）"
    prompt += '''
        你的返回必须是标准的json格式，请按照以下格式返回（不要用markdown格式）：'''
    prompt += '''
                    {
                      "game_title": "[游戏标题]", //你的标题应该足够新颖且有吸引力，体现副本的主题
                      "game_synopsis": "[游戏梗概]" //采用第二人称，你需要介绍清楚副本的背景，主角的身份以及主角的主要任务
                    }
                    '''
    messages = [
        {"role": "system", "content": "你正在帮助生成一个基于文本的游戏场景。"},
        {"role": "user", "content": prompt}
    ]
    response = call_tyqw_api(messages)
    # 假设响应是一个使用单引号的字符串
    response = json.loads(response.json())['choices'][0]['message']['content']

    return response

def generate_game_content(outline, tone, chat_history, last_choice=None):
    if chat_history:
        if last_choice:
            prompt = f"根据上一场用户选择编号“{last_choice}”，用{tone}的叙述风格继续生成游戏场景，"
    else:
        prompt = f"根据游戏梗概{outline}用{tone}的叙述风格，生成一场游戏场景，你需要详细介绍游戏的背景、主角的身份和目标，"
    prompt += '''玩家是游戏主人公，使用第二人称，
    不要重复已经出现的情节，注意保持情节的一致性和连贯性，角色之间互动的合理性，
    每个场景的最后给出用户选项。游戏中主角有三个数值，数值会受到剧情发展的影响合理地增减，
    我希望游戏中出现性格鲜明的角色，能够推动剧情的发展或促进主角的成长。
    请在合适的时候结束游戏，用户选择的选项有一定概率提前触发特殊结局。
    你的返回必须是标准的json格式，请按照以下格式返回（不要用markdown格式）：'''
    prompt += '''
                {
                  "is_over": "[是否结束]"，//true or false
                  "attributes": {
                    "health": **数值**, // 用户当前的健康值
                    "experience": **数值**, // 用户当前的经验值
                    "wealth": **数值** // 用户当前的财富值
                  },
                  "content": [
                    {
                      "type": **1或2**, //1表示场景描述，2表示人物对话
                      "text": "[描述]",   //场景描述（仅当类型为场景描述时）
                      "name": "[角色名]",   //场景描述（仅当类型为人物对话时）
                      "dialogue": "[对话]" //角色的对话内容（仅当类型为人物对话时,只包含对话内容）
                      "voice_type": "[声音类型]" //高冷女声/温柔女声/成熟男声/女孩/男孩（仅当类型为人物对话时）
                    },
                    {
                      "type": **1或2**, //1表示场景描述，2表示人物对话
                      "text": "[描述]",   //场景描述（仅当类型为场景描述时）
                      "name": "[角色名]",   //场景描述（仅当类型为人物对话时）
                      "dialogue": "[对话]" //角色的对话内容（仅当类型为人物对话时,只包含对话内容）
                      "voice_type": "[声音类型]" //高冷女声/温柔女声/成熟男声/男旁白/女孩/男孩（仅当类型为人物对话时）
                    },
                    ... // 给出关键选项前的每一个场景描述和人物对话，可以是多种组合形式，如场景-场景-人物-...，场景-人物-场景-...，请注意人物请只出现一次
                  ]
                  "image_prompt": "[详细描述图片生成指令]" //用于生成背景图片的描述，尽可能描述详细
                  "options": [
                      {
                        "id": "[选项编号]",
                        "text": "[选项文本]"
                      }
                  ]
                }
                '''

    messages = [
        {"role": "system", "content": f"你正在帮助生成一个基于文本的游戏场景，这是游戏梗概：{outline}"},
        *chat_history,
        {"role": "user", "content": prompt}
    ]
    response = call_tyqw_api(messages)
    # 假设响应是一个使用单引号的字符串
    game_scene_str = json.loads(response.json())['choices'][0]['message']['content']

    return game_scene_str, json.loads(response.json())['choices'][0]['message']


def print_attributes(attributes):
    print("当前健康值：", attributes['health'])
    print("当前经验值：", attributes['experience'])
    print("当前财富值：", attributes['wealth'])


def print_scene_content(contents):
    for content in contents:
        if content['type'] == 1:
            print("场景描述:", content['text'])
        else:
            character = content
            print(f"{character['name']}({character['voice_type']}): {character['dialogue']}")


def get_user_inputs():
    name = input("请输入您的姓名: ")
    background = input("\n请输入故事背景:")

    print("\n请选择故事风格:")
    styles = {
        "1": "冒险",
        "2": "悬疑",
        "3": "浪漫",
        "4": "恐怖"
    }
    for key, value in styles.items():
        print(f"{key}: {value}")
    style_choice = input("请输入编号: ")
    style = styles.get(style_choice, "未知风格")

    print("\n请选择叙述语气:")
    tones = {
        "1": "正式",
        "2": "幽默",
        "3": "严肃",
        "4": "温馨"
    }
    for key, value in tones.items():
        print(f"{key}: {value}")
    tone_choice = input("请输入编号: ")
    tone = tones.get(tone_choice, "未知语气")
    print(name, background, style, tone)

    return name, background, style, tone

def main():
    name, background, style, tone = get_user_inputs()

    # 这里先让chatgpt生成情节梗概
    response = generate_outline(name, background, style, tone)
    response = json.loads(response)
    title = response.get('game_title')
    outline = response.get('game_synopsis')
    print(f"游戏标题：{title}")
    print(f"游戏梗概：{outline}")

    game_over = False
    chat_history = []
    last_choice = None

    while not game_over:
        scene_data, new_message = generate_game_content(outline, tone, chat_history, last_choice)
        print(scene_data)
        # 解析返回的数据
        scene_data = json.loads(scene_data)
        is_over = scene_data.get('is_over') == 'true'
        content = scene_data.get('content')
        attribute = scene_data.get('attributes')
        # 打印用户属性
        print_attributes(attribute)
        # 打印场景内容
        print_scene_content(content)
        print("可选选项:")
        for option in scene_data.get('options'):
            print(option['id'], option['text'])

        # 更新聊天历史
        chat_history.append(new_message)
        print(chat_history)

        last_choice = input("请输入选项编号: ")

        game_over = is_over


if __name__ == "__main__":
    main()


'''
以下是测试效果
请输入您的姓名: aa

请输入故事背景:地狱

请选择故事风格:
1: 冒险
2: 悬疑
3: 浪漫
4: 恐怖
请输入编号: 3

请选择叙述语气:
1: 正式
2: 幽默
3: 严肃
4: 温馨
请输入编号: 2
aa 地狱 浪漫 幽默
游戏梗概：
在地狱的深处，有一个传说中的地方，名为“情焰谷”。这里，爱情与火焰交织，甜蜜与痛苦并存。我们的主角，一个名叫aa（是的，你没听错，他的父母可能觉得两个字母就能概括他的一生）的小伙子，意外地穿越到了这个充满浪漫与挑战的地方。

aa本是一个平凡的图书管理员，生活简单而平静。然而，在一次寻找一本关于地狱历史的珍稀书籍时，他不小心触发了一个古老的咒语，瞬间被传送到了情焰谷。在这里，他遇到了一位神秘的女子，她自称是“地狱之花”，拥有着改变命运的力量。aa被告知，只有找到三件传说中的宝物，才能解开诅咒，回到人间。

于是，aa踏上了寻找宝物的旅程。他的第一个任务是在一片燃烧的爱情之火中找到“永恒之心”。这颗心据说能够让人体验到最纯粹的爱。在寻找的过程中，aa不仅需要面对各种凶猛的生物，还要学会如何处理自己内心的情感波动——毕竟，在地狱里谈一场轰轰烈烈的恋爱，可不是件容易的事！

接下来，aa必须前往幽暗森林，寻找“遗忘之叶”。这片叶子能让持有者忘记过去的伤痛，为未来铺平道路。但在那里，aa遭遇了自己内心的恶魔，这些恶魔试图让他放弃希望，永远迷失在这片黑暗之中。

最后，aa需要到达时间之塔，取得“未来之镜”。这面镜子能预示未来的方向，但使用它需要极大的勇气和智慧。在塔顶，aa将面对最终的考验：是否愿意为了真爱放弃一切？

整个旅途中，aa学会了勇敢、坚持与自我牺牲。当所有宝物集齐后，他发现自己已经不再是那个胆小怕事的图书管理员。最重要的是，他还收获了一段刻骨铭心的爱情。

最终，aa能否成功解开诅咒，带着“地狱之花”一起返回人间？还是说，他们会选择留在情焰谷，共同创造属于自己的传奇？这一切，都等待着玩家去探索和发现。
{
  "is_over": "false",
  "attributes": {
    "health": 100,
    "experience": 0,
    "wealth": 50
  },
  "content": [
    {
      "type": 1,
      "text": "你，aa，原本是一个平凡的图书管理员，每天的生活就是整理书籍、借阅记录，偶尔与同事开开玩笑。但这一切都在你寻找一本关于地狱历史的珍稀书籍时发生了变化。你无意间触发了一个古老的咒语，瞬间被传送到一个陌生而神秘的地方——情焰谷。"
    },
    {
      "type": 1,
      "text": "情焰谷，传说中的爱情与火焰交织之地，甜蜜与痛苦并存。四周是熊熊燃烧的火焰，空气中弥漫着一种奇异的香气。你感到既兴奋又害怕，不知道接下来会发生什么。"
    },
    {
      "type": 2,
      "text": "",
      "name": "神秘女子",
      "dialogue": "欢迎来到情焰谷，我是‘地狱之花’，你可以叫我莉莉。只有找到三件传说中的宝物，才能解开诅咒，回到人间。这三件宝物分别是：‘永恒之心’、‘遗忘之叶’和‘未来之镜’。你准备好了吗？"
    },
    {
      "type": 1,
      "text": "莉莉的话语让你心中充满了决心。你决定接受挑战，踏上寻找宝物的旅程。你的第一个任务是在一片燃烧的爱情之火中找到‘永恒之心’。这颗心据说能够让人体验到最纯粹的爱。"
    },
    {
      "type": 2,
      "text": "",
      "name": "莉莉",
      "dialogue": "记住，这片火海中不仅有危险，还有机会。你必须勇敢地面对一切，才能找到‘永恒之心’。祝你好运！"
    }
  ],
  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。",
  "options": [
    {
      "id": "1",
      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"
    },
    {
      "id": "2",
      "text": "先和莉莉多聊一会儿，了解更多关于情焰谷的信息。"
    },
    {
      "id": "3",
      "text": "检查一下自己的装备，确保一切准备就绪。"
    }
  ]
}
当前健康值： 100
当前经验值： 0
当前财富值： 50
场景描述: 你，aa，原本是一个平凡的图书管理员，每天的生活就是整理书籍、借阅记录，偶尔与同事开开玩笑。但这一切都在你寻找一本关于地狱历史的珍稀书籍时发生了变化。你无意间触发了一个古老的咒语，瞬间被传送到一个陌生而神秘的地方——情焰谷。
场景描述: 情焰谷，传说中的爱情与火焰交织之地，甜蜜与痛苦并存。四周是熊熊燃烧的火焰，空气中弥漫着一种奇异的香气。你感到既兴奋又害怕，不知道接下来会发生什么。
神秘女子: 欢迎来到情焰谷，我是‘地狱之花’，你可以叫我莉莉。只有找到三件传说中的宝物，才能解开诅咒，回到人间。这三件宝物分别是：‘永恒之心’、‘遗忘之叶’和‘未来之镜’。你准备好了吗？
场景描述: 莉莉的话语让你心中充满了决心。你决定接受挑战，踏上寻找宝物的旅程。你的第一个任务是在一片燃烧的爱情之火中找到‘永恒之心’。这颗心据说能够让人体验到最纯粹的爱。
莉莉: 记住，这片火海中不仅有危险，还有机会。你必须勇敢地面对一切，才能找到‘永恒之心’。祝你好运！
可选选项:
1 立即出发，前往火焰之海寻找‘永恒之心’。
2 先和莉莉多聊一会儿，了解更多关于情焰谷的信息。
3 检查一下自己的装备，确保一切准备就绪。
[{'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 100,\n    "experience": 0,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你，aa，原本是一个平凡的图书管理员，每天的生活就是整理书籍、借阅记录，偶尔与同事开开玩笑。但这一切都在你寻找一本关于地狱历史的珍稀书籍时发生了变化。你无意间触发了一个古老的咒语，瞬间被传送到一个陌生而神秘的地方——情焰谷。"\n    },\n    {\n      "type": 1,\n      "text": "情焰谷，传说中的爱情与火焰交织之地，甜蜜与痛苦并存。四周是熊熊燃烧的火焰，空气中弥漫着一种奇异的香气。你感到既兴奋又害怕，不知道接下来会发生什么。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "神秘女子",\n      "dialogue": "欢迎来到情焰谷，我是‘地狱之花’，你可以叫我莉莉。只有找到三件传说中的宝物，才能解开诅咒，回到人间。这三件宝物分别是：‘永恒之心’、‘遗忘之叶’和‘未来之镜’。你准备好了吗？"\n    },\n    {\n      "type": 1,\n      "text": "莉莉的话语让你心中充满了决心。你决定接受挑战，踏上寻找宝物的旅程。你的第一个任务是在一片燃烧的爱情之火中找到‘永恒之心’。这颗心据说能够让人体验到最纯粹的爱。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "记住，这片火海中不仅有危险，还有机会。你必须勇敢地面对一切，才能找到‘永恒之心’。祝你好运！"\n    }\n  ],\n  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。",\n  "options": [\n    {\n      "id": "1",\n      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"\n    },\n    {\n      "id": "2",\n      "text": "先和莉莉多聊一会儿，了解更多关于情焰谷的信息。"\n    },\n    {\n      "id": "3",\n      "text": "检查一下自己的装备，确保一切准备就绪。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}]
请输入选项编号: 2
{
  "is_over": "false",
  "attributes": {
    "health": 100,
    "experience": 10,
    "wealth": 50
  },
  "content": [
    {
      "type": 1,
      "text": "你决定先和莉莉多聊一会儿，毕竟在这样一个神秘的地方，多了解一些信息总是好的。你走到莉莉面前，准备开始你的‘地狱之花’访谈。"
    },
    {
      "type": 2,
      "text": "",
      "name": "你",
      "dialogue": "莉莉，你能告诉我更多关于情焰谷的事情吗？比如，这里的居民都是些什么人？他们平时都做些什么？"
    },
    {
      "type": 2,
      "text": "",
      "name": "莉莉",
      "dialogue": "哈哈，你真是个好奇宝宝。情焰谷的居民五花八门，有被爱情烧得焦头烂额的恋人们，有因为欲望而堕落的灵魂，还有一些像我这样的守护者。大家各有各的故事，但都有一个共同点——他们都经历过刻骨铭心的爱情。"
    },
    {
      "type": 2,
      "text": "",
      "name": "你",
      "dialogue": "那……这里的规则是什么？有没有什么特别需要注意的事项？"
    },
    {
      "type": 2,
      "text": "",
      "name": "莉莉",
      "dialogue": "规则嘛，其实很简单。第一，不要轻易相信任何人，包括我；第二，永远不要放弃希望，即使在最黑暗的时刻；第三，珍惜每一次遇见，因为你永远不会知道下一个人会给你带来什么。"
    },
    {
      "type": 2,
      "text": "",
      "name": "你",
      "dialogue": "听起来挺有哲理的。那我去找‘永恒之心’的时候，有没有什么特别的建议？"
    },
    {
      "type": 2,
      "text": "",
      "name": "莉莉",
      "dialogue": "火焰之海中有一种叫做‘情焰鸟’的生物，它们非常美丽，但也很危险。如果你遇到它们，尽量不要引起它们的注意。另外，‘永恒之心’藏在一个隐蔽的洞穴里，你需要解开一些谜题才能找到它。祝你好运！"
    },
    {
      "type": 1,
      "text": "听了莉莉的话，你感到更加有信心了。虽然前方的道路充满了未知和危险，但你已经做好了准备。你决定现在就出发，前往火焰之海寻找‘永恒之心’。"
    }
  ],
  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。几只美丽的‘情焰鸟’在空中飞舞，发出耀眼的光芒。",
  "options": [
    {
      "id": "1",
      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"
    },
    {
      "id": "2",
      "text": "再和莉莉聊一会儿，看看她还有什么建议。"
    },
    {
      "id": "3",
      "text": "检查一下自己的装备，确保一切准备就绪。"
    }
  ]
}
当前健康值： 100
当前经验值： 10
当前财富值： 50
场景描述: 你决定先和莉莉多聊一会儿，毕竟在这样一个神秘的地方，多了解一些信息总是好的。你走到莉莉面前，准备开始你的‘地狱之花’访谈。
你: 莉莉，你能告诉我更多关于情焰谷的事情吗？比如，这里的居民都是些什么人？他们平时都做些什么？
莉莉: 哈哈，你真是个好奇宝宝。情焰谷的居民五花八门，有被爱情烧得焦头烂额的恋人们，有因为欲望而堕落的灵魂，还有一些像我这样的守护者。大家各有各的故事，但都有一个共同点——他们都经历过刻骨铭心的爱情。
你: 那……这里的规则是什么？有没有什么特别需要注意的事项？
莉莉: 规则嘛，其实很简单。第一，不要轻易相信任何人，包括我；第二，永远不要放弃希望，即使在最黑暗的时刻；第三，珍惜每一次遇见，因为你永远不会知道下一个人会给你带来什么。
你: 听起来挺有哲理的。那我去找‘永恒之心’的时候，有没有什么特别的建议？
莉莉: 火焰之海中有一种叫做‘情焰鸟’的生物，它们非常美丽，但也很危险。如果你遇到它们，尽量不要引起它们的注意。另外，‘永恒之心’藏在一个隐蔽的洞穴里，你需要解开一些谜题才能找到它。祝你好运！
场景描述: 听了莉莉的话，你感到更加有信心了。虽然前方的道路充满了未知和危险，但你已经做好了准备。你决定现在就出发，前往火焰之海寻找‘永恒之心’。
可选选项:
1 立即出发，前往火焰之海寻找‘永恒之心’。
2 再和莉莉聊一会儿，看看她还有什么建议。
3 检查一下自己的装备，确保一切准备就绪。
[{'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 100,\n    "experience": 0,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你，aa，原本是一个平凡的图书管理员，每天的生活就是整理书籍、借阅记录，偶尔与同事开开玩笑。但这一切都在你寻找一本关于地狱历史的珍稀书籍时发生了变化。你无意间触发了一个古老的咒语，瞬间被传送到一个陌生而神秘的地方——情焰谷。"\n    },\n    {\n      "type": 1,\n      "text": "情焰谷，传说中的爱情与火焰交织之地，甜蜜与痛苦并存。四周是熊熊燃烧的火焰，空气中弥漫着一种奇异的香气。你感到既兴奋又害怕，不知道接下来会发生什么。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "神秘女子",\n      "dialogue": "欢迎来到情焰谷，我是‘地狱之花’，你可以叫我莉莉。只有找到三件传说中的宝物，才能解开诅咒，回到人间。这三件宝物分别是：‘永恒之心’、‘遗忘之叶’和‘未来之镜’。你准备好了吗？"\n    },\n    {\n      "type": 1,\n      "text": "莉莉的话语让你心中充满了决心。你决定接受挑战，踏上寻找宝物的旅程。你的第一个任务是在一片燃烧的爱情之火中找到‘永恒之心’。这颗心据说能够让人体验到最纯粹的爱。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "记住，这片火海中不仅有危险，还有机会。你必须勇敢地面对一切，才能找到‘永恒之心’。祝你好运！"\n    }\n  ],\n  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。",\n  "options": [\n    {\n      "id": "1",\n      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"\n    },\n    {\n      "id": "2",\n      "text": "先和莉莉多聊一会儿，了解更多关于情焰谷的信息。"\n    },\n    {\n      "id": "3",\n      "text": "检查一下自己的装备，确保一切准备就绪。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}, {'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 100,\n    "experience": 10,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你决定先和莉莉多聊一会儿，毕竟在这样一个神秘的地方，多了解一些信息总是好的。你走到莉莉面前，准备开始你的‘地狱之花’访谈。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "莉莉，你能告诉我更多关于情焰谷的事情吗？比如，这里的居民都是些什么人？他们平时都做些什么？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "哈哈，你真是个好奇宝宝。情焰谷的居民五花八门，有被爱情烧得焦头烂额的恋人们，有因为欲望而堕落的灵魂，还有一些像我这样的守护者。大家各有各的故事，但都有一个共同点——他们都经历过刻骨铭心的爱情。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "那……这里的规则是什么？有没有什么特别需要注意的事项？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "规则嘛，其实很简单。第一，不要轻易相信任何人，包括我；第二，永远不要放弃希望，即使在最黑暗的时刻；第三，珍惜每一次遇见，因为你永远不会知道下一个人会给你带来什么。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "听起来挺有哲理的。那我去找‘永恒之心’的时候，有没有什么特别的建议？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "火焰之海中有一种叫做‘情焰鸟’的生物，它们非常美丽，但也很危险。如果你遇到它们，尽量不要引起它们的注意。另外，‘永恒之心’藏在一个隐蔽的洞穴里，你需要解开一些谜题才能找到它。祝你好运！"\n    },\n    {\n      "type": 1,\n      "text": "听了莉莉的话，你感到更加有信心了。虽然前方的道路充满了未知和危险，但你已经做好了准备。你决定现在就出发，前往火焰之海寻找‘永恒之心’。"\n    }\n  ],\n  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。几只美丽的‘情焰鸟’在空中飞舞，发出耀眼的光芒。",\n  "options": [\n    {\n      "id": "1",\n      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"\n    },\n    {\n      "id": "2",\n      "text": "再和莉莉聊一会儿，看看她还有什么建议。"\n    },\n    {\n      "id": "3",\n      "text": "检查一下自己的装备，确保一切准备就绪。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}]
请输入选项编号: 1
{
  "is_over": "false",
  "attributes": {
    "health": 90,
    "experience": 20,
    "wealth": 50
  },
  "content": [
    {
      "type": 1,
      "text": "你深吸一口气，踏上了前往火焰之海的小径。四周的火焰仿佛在为你加油打气，你心里想着：‘好吧，aa，今天你就要变成一个真正的勇士了。’"
    },
    {
      "type": 1,
      "text": "你沿着小径前行，突然，一只巨大的‘情焰鸟’从天而降，它的羽毛在火焰中闪耀着五彩斑斓的光芒。你顿时感到一阵紧张，但想起莉莉的忠告，你尽量保持冷静，慢慢后退。"
    },
    {
      "type": 2,
      "text": "",
      "name": "情焰鸟",
      "dialogue": "哦，一个小家伙，居然敢闯入我的领地？哼，看你这么可爱，我就饶你一命吧。不过，你要帮我一个小忙才行。"
    },
    {
      "type": 1,
      "text": "你松了一口气，但心里还是有些忐忑。‘帮它什么忙呢？’你心想。"
    },
    {
      "type": 2,
      "text": "",
      "name": "情焰鸟",
      "dialogue": "我的巢穴里有一颗珍贵的宝石，但我不小心把它掉进了一个熔岩坑里。你能帮我捡回来吗？如果你成功了，我会告诉你‘永恒之心’的具体位置。"
    },
    {
      "type": 2,
      "text": "",
      "name": "你",
      "dialogue": "好吧，我试试看。不过，你得保证不伤害我。"
    },
    {
      "type": 2,
      "text": "",
      "name": "情焰鸟",
      "dialogue": "放心，只要你完成任务，我绝不会食言。"
    },
    {
      "type": 1,
      "text": "你小心翼翼地走向熔岩坑，心里默念着：‘加油，aa，你是最棒的！’你终于找到了那颗宝石，但要捡起来并不容易。你用尽全力，终于把宝石捡了起来。"
    },
    {
      "type": 2,
      "text": "",
      "name": "情焰鸟",
      "dialogue": "干得好，小家伙！你真是个勇敢的人类。‘永恒之心’就在前面的洞穴里，但要小心，里面布满了机关。祝你好运！"
    },
    {
      "type": 1,
      "text": "你感激地点点头，继续向前走去。洞穴入口隐藏在一片浓密的火焰之后，你小心翼翼地走进去。洞穴内部比外面更加炽热，但你没有退缩。"
    },
    {
      "type": 1,
      "text": "你穿过一条狭窄的通道，来到了一个宽敞的洞室。洞室中央有一个发光的平台，上面放着一颗散发着温暖光芒的心形宝石——‘永恒之心’。你感到一阵激动，但还没来得及伸手，突然从洞室的阴影中跳出一个身影。"
    },
    {
      "type": 2,
      "text": "",
      "name": "守卫",
      "dialogue": "站住！你是谁？为什么要来偷取‘永恒之心’？"
    },
    {
      "type": 2,
      "text": "",
      "name": "你",
      "dialogue": "我不是来偷的，我是被诅咒传送到这里的，只有找到‘永恒之心’才能解开封印，回到人间。"
    },
    {
      "type": 2,
      "text": "",
      "name": "守卫",
      "dialogue": "哼，说得倒轻巧。除非你能通过我的考验，否则别想带走‘永恒之心’。"
    },
    {
      "type": 1,
      "text": "守卫的眼神中透露出一丝狡黠，你意识到这将是一场艰难的考验。"
    }
  ],
  "image_prompt": "一个狭窄的洞穴入口，周围是熊熊燃烧的火焰。洞穴内部宽敞，中央有一个发光的平台，上面放着一颗心形的宝石。洞室的阴影中，一个手持长矛的守卫警惕地看着你。",
  "options": [
    {
      "id": "1",
      "text": "尝试说服守卫，告诉他你的故事。"
    },
    {
      "id": "2",
      "text": "与守卫进行一场决斗，证明你的实力。"
    },
    {
      "id": "3",
      "text": "寻找其他方法绕过守卫，悄悄拿到‘永恒之心’。"
    }
  ]
}
当前健康值： 90
当前经验值： 20
当前财富值： 50
场景描述: 你深吸一口气，踏上了前往火焰之海的小径。四周的火焰仿佛在为你加油打气，你心里想着：‘好吧，aa，今天你就要变成一个真正的勇士了。’
场景描述: 你沿着小径前行，突然，一只巨大的‘情焰鸟’从天而降，它的羽毛在火焰中闪耀着五彩斑斓的光芒。你顿时感到一阵紧张，但想起莉莉的忠告，你尽量保持冷静，慢慢后退。
情焰鸟: 哦，一个小家伙，居然敢闯入我的领地？哼，看你这么可爱，我就饶你一命吧。不过，你要帮我一个小忙才行。
场景描述: 你松了一口气，但心里还是有些忐忑。‘帮它什么忙呢？’你心想。
情焰鸟: 我的巢穴里有一颗珍贵的宝石，但我不小心把它掉进了一个熔岩坑里。你能帮我捡回来吗？如果你成功了，我会告诉你‘永恒之心’的具体位置。
你: 好吧，我试试看。不过，你得保证不伤害我。
情焰鸟: 放心，只要你完成任务，我绝不会食言。
场景描述: 你小心翼翼地走向熔岩坑，心里默念着：‘加油，aa，你是最棒的！’你终于找到了那颗宝石，但要捡起来并不容易。你用尽全力，终于把宝石捡了起来。
情焰鸟: 干得好，小家伙！你真是个勇敢的人类。‘永恒之心’就在前面的洞穴里，但要小心，里面布满了机关。祝你好运！
场景描述: 你感激地点点头，继续向前走去。洞穴入口隐藏在一片浓密的火焰之后，你小心翼翼地走进去。洞穴内部比外面更加炽热，但你没有退缩。
场景描述: 你穿过一条狭窄的通道，来到了一个宽敞的洞室。洞室中央有一个发光的平台，上面放着一颗散发着温暖光芒的心形宝石——‘永恒之心’。你感到一阵激动，但还没来得及伸手，突然从洞室的阴影中跳出一个身影。
守卫: 站住！你是谁？为什么要来偷取‘永恒之心’？
你: 我不是来偷的，我是被诅咒传送到这里的，只有找到‘永恒之心’才能解开封印，回到人间。
守卫: 哼，说得倒轻巧。除非你能通过我的考验，否则别想带走‘永恒之心’。
场景描述: 守卫的眼神中透露出一丝狡黠，你意识到这将是一场艰难的考验。
可选选项:
1 尝试说服守卫，告诉他你的故事。
2 与守卫进行一场决斗，证明你的实力。
3 寻找其他方法绕过守卫，悄悄拿到‘永恒之心’。
[{'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 100,\n    "experience": 0,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你，aa，原本是一个平凡的图书管理员，每天的生活就是整理书籍、借阅记录，偶尔与同事开开玩笑。但这一切都在你寻找一本关于地狱历史的珍稀书籍时发生了变化。你无意间触发了一个古老的咒语，瞬间被传送到一个陌生而神秘的地方——情焰谷。"\n    },\n    {\n      "type": 1,\n      "text": "情焰谷，传说中的爱情与火焰交织之地，甜蜜与痛苦并存。四周是熊熊燃烧的火焰，空气中弥漫着一种奇异的香气。你感到既兴奋又害怕，不知道接下来会发生什么。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "神秘女子",\n      "dialogue": "欢迎来到情焰谷，我是‘地狱之花’，你可以叫我莉莉。只有找到三件传说中的宝物，才能解开诅咒，回到人间。这三件宝物分别是：‘永恒之心’、‘遗忘之叶’和‘未来之镜’。你准备好了吗？"\n    },\n    {\n      "type": 1,\n      "text": "莉莉的话语让你心中充满了决心。你决定接受挑战，踏上寻找宝物的旅程。你的第一个任务是在一片燃烧的爱情之火中找到‘永恒之心’。这颗心据说能够让人体验到最纯粹的爱。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "记住，这片火海中不仅有危险，还有机会。你必须勇敢地面对一切，才能找到‘永恒之心’。祝你好运！"\n    }\n  ],\n  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。",\n  "options": [\n    {\n      "id": "1",\n      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"\n    },\n    {\n      "id": "2",\n      "text": "先和莉莉多聊一会儿，了解更多关于情焰谷的信息。"\n    },\n    {\n      "id": "3",\n      "text": "检查一下自己的装备，确保一切准备就绪。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}, {'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 100,\n    "experience": 10,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你决定先和莉莉多聊一会儿，毕竟在这样一个神秘的地方，多了解一些信息总是好的。你走到莉莉面前，准备开始你的‘地狱之花’访谈。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "莉莉，你能告诉我更多关于情焰谷的事情吗？比如，这里的居民都是些什么人？他们平时都做些什么？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "哈哈，你真是个好奇宝宝。情焰谷的居民五花八门，有被爱情烧得焦头烂额的恋人们，有因为欲望而堕落的灵魂，还有一些像我这样的守护者。大家各有各的故事，但都有一个共同点——他们都经历过刻骨铭心的爱情。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "那……这里的规则是什么？有没有什么特别需要注意的事项？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "规则嘛，其实很简单。第一，不要轻易相信任何人，包括我；第二，永远不要放弃希望，即使在最黑暗的时刻；第三，珍惜每一次遇见，因为你永远不会知道下一个人会给你带来什么。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "听起来挺有哲理的。那我去找‘永恒之心’的时候，有没有什么特别的建议？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "莉莉",\n      "dialogue": "火焰之海中有一种叫做‘情焰鸟’的生物，它们非常美丽，但也很危险。如果你遇到它们，尽量不要引起它们的注意。另外，‘永恒之心’藏在一个隐蔽的洞穴里，你需要解开一些谜题才能找到它。祝你好运！"\n    },\n    {\n      "type": 1,\n      "text": "听了莉莉的话，你感到更加有信心了。虽然前方的道路充满了未知和危险，但你已经做好了准备。你决定现在就出发，前往火焰之海寻找‘永恒之心’。"\n    }\n  ],\n  "image_prompt": "一片熊熊燃烧的火焰之谷，四周是炽热的岩浆和飘动的烟雾。天空中有一轮血红色的月亮，远处可以看到一座高耸的山峰。中央有一条狭窄的小径，通向一片被火焰包围的区域。几只美丽的‘情焰鸟’在空中飞舞，发出耀眼的光芒。",\n  "options": [\n    {\n      "id": "1",\n      "text": "立即出发，前往火焰之海寻找‘永恒之心’。"\n    },\n    {\n      "id": "2",\n      "text": "再和莉莉聊一会儿，看看她还有什么建议。"\n    },\n    {\n      "id": "3",\n      "text": "检查一下自己的装备，确保一切准备就绪。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}, {'content': '{\n  "is_over": "false",\n  "attributes": {\n    "health": 90,\n    "experience": 20,\n    "wealth": 50\n  },\n  "content": [\n    {\n      "type": 1,\n      "text": "你深吸一口气，踏上了前往火焰之海的小径。四周的火焰仿佛在为你加油打气，你心里想着：‘好吧，aa，今天你就要变成一个真正的勇士了。’"\n    },\n    {\n      "type": 1,\n      "text": "你沿着小径前行，突然，一只巨大的‘情焰鸟’从天而降，它的羽毛在火焰中闪耀着五彩斑斓的光芒。你顿时感到一阵紧张，但想起莉莉的忠告，你尽量保持冷静，慢慢后退。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "情焰鸟",\n      "dialogue": "哦，一个小家伙，居然敢闯入我的领地？哼，看你这么可爱，我就饶你一命吧。不过，你要帮我一个小忙才行。"\n    },\n    {\n      "type": 1,\n      "text": "你松了一口气，但心里还是有些忐忑。‘帮它什么忙呢？’你心想。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "情焰鸟",\n      "dialogue": "我的巢穴里有一颗珍贵的宝石，但我不小心把它掉进了一个熔岩坑里。你能帮我捡回来吗？如果你成功了，我会告诉你‘永恒之心’的具体位置。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "好吧，我试试看。不过，你得保证不伤害我。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "情焰鸟",\n      "dialogue": "放心，只要你完成任务，我绝不会食言。"\n    },\n    {\n      "type": 1,\n      "text": "你小心翼翼地走向熔岩坑，心里默念着：‘加油，aa，你是最棒的！’你终于找到了那颗宝石，但要捡起来并不容易。你用尽全力，终于把宝石捡了起来。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "情焰鸟",\n      "dialogue": "干得好，小家伙！你真是个勇敢的人类。‘永恒之心’就在前面的洞穴里，但要小心，里面布满了机关。祝你好运！"\n    },\n    {\n      "type": 1,\n      "text": "你感激地点点头，继续向前走去。洞穴入口隐藏在一片浓密的火焰之后，你小心翼翼地走进去。洞穴内部比外面更加炽热，但你没有退缩。"\n    },\n    {\n      "type": 1,\n      "text": "你穿过一条狭窄的通道，来到了一个宽敞的洞室。洞室中央有一个发光的平台，上面放着一颗散发着温暖光芒的心形宝石——‘永恒之心’。你感到一阵激动，但还没来得及伸手，突然从洞室的阴影中跳出一个身影。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "守卫",\n      "dialogue": "站住！你是谁？为什么要来偷取‘永恒之心’？"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "你",\n      "dialogue": "我不是来偷的，我是被诅咒传送到这里的，只有找到‘永恒之心’才能解开封印，回到人间。"\n    },\n    {\n      "type": 2,\n      "text": "",\n      "name": "守卫",\n      "dialogue": "哼，说得倒轻巧。除非你能通过我的考验，否则别想带走‘永恒之心’。"\n    },\n    {\n      "type": 1,\n      "text": "守卫的眼神中透露出一丝狡黠，你意识到这将是一场艰难的考验。"\n    }\n  ],\n  "image_prompt": "一个狭窄的洞穴入口，周围是熊熊燃烧的火焰。洞穴内部宽敞，中央有一个发光的平台，上面放着一颗心形的宝石。洞室的阴影中，一个手持长矛的守卫警惕地看着你。",\n  "options": [\n    {\n      "id": "1",\n      "text": "尝试说服守卫，告诉他你的故事。"\n    },\n    {\n      "id": "2",\n      "text": "与守卫进行一场决斗，证明你的实力。"\n    },\n    {\n      "id": "3",\n      "text": "寻找其他方法绕过守卫，悄悄拿到‘永恒之心’。"\n    }\n  ]\n}', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}]
请输入选项编号: 
'''